package co.edu.usbcali.rebio.presentation.backEndBeans;

import co.edu.usbcali.rebio.exceptions.*;
import co.edu.usbcali.rebio.modelo.*;
import co.edu.usbcali.rebio.modelo.dto.RebHaciendaDTO;
import co.edu.usbcali.rebio.presentation.businessDelegate.BusinessDelegatorView;
import co.edu.usbcali.rebio.utilities.*;

import com.icesoft.faces.async.render.RenderManager;
import com.icesoft.faces.async.render.Renderable;
import com.icesoft.faces.component.ext.HtmlCommandButton;
import com.icesoft.faces.component.ext.HtmlDataTable;
import com.icesoft.faces.component.ext.HtmlInputText;
import com.icesoft.faces.component.ext.HtmlOutputText;
import com.icesoft.faces.component.ext.HtmlSelectOneMenu;
import com.icesoft.faces.component.selectinputdate.SelectInputDate;
import com.icesoft.faces.context.DisposableBean;
import com.icesoft.faces.webapp.xmlhttp.FatalRenderingException;
import com.icesoft.faces.webapp.xmlhttp.PersistentFacesState;
import com.icesoft.faces.webapp.xmlhttp.RenderingException;
import com.icesoft.faces.webapp.xmlhttp.TransientRenderingException;

import groovyjarjarasm.asm.tree.IntInsnNode;

import java.math.BigDecimal;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.TimeZone;
import java.util.Vector;

import javax.faces.event.ValueChangeEvent;
import javax.faces.model.DataModel;
import javax.faces.model.SelectItem;


/**
*
*
* @author Zathura Code Generator http://code.google.com/p/zathura
*
*/
public class RebHaciendaView extends DataSource implements Renderable,
    DisposableBean {
    private HtmlInputText txtHadAdministrador;
    private HtmlInputText txtHadArea;
    private HtmlInputText txtHadCodigo;
    private HtmlOutputText txtHadCodigo1;
    private HtmlOutputText txtHadCodigo2;
    private HtmlOutputText txtHadCodigo3;
    private HtmlInputText txtHadEmailadmin;
    private HtmlInputText txtHadEstado;
    private HtmlInputText txtHadMayordomo;
    private HtmlInputText txtHadNombre;
    private HtmlInputText txtHadTelefonoadmin;
    private HtmlInputText txtHadTelefonomayo;
    private HtmlInputText txtCliIdentificacion_RebCliente;
    private HtmlInputText txtIngCodigo_RebIngenio;
    private HtmlInputText txtVedCodigo_RebVereda;
    private HtmlInputText txtHadId;
    private HtmlInputText txtNombreCliente;
    private HtmlInputText txtNombreVereda;
    private HtmlInputText txtNombreIngenio;
    private HtmlSelectOneMenu cmbHadCliente;
    private HtmlSelectOneMenu cmbHadIngenio;
    private HtmlSelectOneMenu cmbHadVereda;
    private HtmlSelectOneMenu cmbHadEstado;
    private HtmlCommandButton btnSave;
    private HtmlCommandButton btnModify;
    private HtmlCommandButton btnDelete;
    private HtmlCommandButton btnClear;
    private HtmlCommandButton btnLupaH;
    private HtmlCommandButton btnLupaV;
    private HtmlCommandButton btnLupaI;
    private HtmlDataTable tablaClientes = new HtmlDataTable();
    private HtmlDataTable tablaVereda = new HtmlDataTable();
    private HtmlDataTable tablaIngenio = new HtmlDataTable();
    private boolean renderDataTable;
    private boolean flag = true;
    private HtmlCommandButton btnAceptar;
    private boolean btnErrorf = false;
    private boolean btnCerrarH = false;
    private boolean btnCerrarV = false;
    private boolean btnCerrarI = false;
    private RenderManager renderManager;
    private PersistentFacesState state = PersistentFacesState.getInstance();
    private List<RebHacienda> rebHacienda;
    private List<RebHaciendaDTO> rebHaciendaDTO;
    private List<SelectItem> listCliente = new ArrayList<SelectItem>();
    private List<SelectItem> listIngenio = new ArrayList<SelectItem>();
    private List<SelectItem> listVereda = new ArrayList<SelectItem>();
    private List<SelectItem> listEstado = new ArrayList<SelectItem>();
    private List<RebCliente> losClientes = new ArrayList<RebCliente>();
    private List<RebVereda> lasVeredas = new ArrayList<RebVereda>();
    private List<RebIngenio> losIngenios = new ArrayList<RebIngenio>();
    private String codigoCli;
    private String codigoVed;
    private String codigoIng;

    public RebHaciendaView() {
        super("");
    }
    public String action_CargarC() throws Exception {
    	String codigoCliente = txtHadCodigo1.getValue().toString();
    	try {
			RebCliente cliente = BusinessDelegatorView.getRebCliente(codigoCliente.toString());
			txtCliIdentificacion_RebCliente.setValue(cliente.getCliApellido().concat(" ").concat(cliente.getCliNombre()));
			codigoCli = cliente.getCliIdentificacion().toString();
			btnCerrarH = false;
			
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        return "";
    }
    public String action_CargarV() throws Exception {
    	String codigoVereda = txtHadCodigo2.getValue().toString();
    	try {
			RebVereda vereda = BusinessDelegatorView.getRebVereda(Integer.parseInt(codigoVereda));
			txtVedCodigo_RebVereda.setValue(vereda.getVedNombre());
			codigoVed = vereda.getVedCodigo().toString();
			btnCerrarV = false;
			
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        return "";
    }
    
    public String action_CargarI() throws Exception {
    	String codigoIngenio = txtHadCodigo3.getValue().toString();
    	try {
			RebIngenio ingenio = BusinessDelegatorView.getRebIngenio(Integer.parseInt(codigoIngenio));
			txtIngCodigo_RebIngenio.setValue(ingenio.getIngNombre());
			codigoIng = ingenio.getIngCodigo().toString();
			btnCerrarI = false;
			
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        return "";
    }
    
    public String action_abrirC() {
		btnCerrarH = true;
		return "";
	}
    public String action_abrirV() {
		btnCerrarV = true;
		return "";
	}
    public String action_abrirI() {
		btnCerrarI = true;
		return "";
	}
    
    public String action_cerrarC() {
		btnCerrarH = false;
		return "";
	}	
    public String action_cerrarV() {
		btnCerrarV = false;
		return "";
	}
    public String action_cerrarI() {
		btnCerrarI = false;
		return "";
	}
    
	public String action_clear() {
        txtHadAdministrador.setValue(null);
        txtHadAdministrador.setDisabled(false);
        txtHadArea.setValue(null);
        txtHadArea.setDisabled(false);
        txtHadCodigo.setValue(null);
        txtHadCodigo.setDisabled(false);
        txtHadEmailadmin.setValue(null);
        txtHadEmailadmin.setDisabled(false);
        cmbHadEstado.setValue(null);
        cmbHadEstado.setDisabled(false);
        txtHadMayordomo.setValue(null);
        txtHadMayordomo.setDisabled(false);
        txtHadNombre.setValue(null);
        txtHadNombre.setDisabled(false);
        txtHadTelefonoadmin.setValue(null);
        txtHadTelefonoadmin.setDisabled(false);
        txtHadTelefonomayo.setValue(null);
        txtHadTelefonomayo.setDisabled(false);
//        cmbHadCliente.setValue(null);
//        cmbHadCliente.setDisabled(false);
        txtCliIdentificacion_RebCliente.setValue(null);
        txtCliIdentificacion_RebCliente.setDisabled(false);
//        cmbHadIngenio.setValue(null);
//        cmbHadIngenio.setDisabled(false);
        txtIngCodigo_RebIngenio.setValue(null);
        txtIngCodigo_RebIngenio.setDisabled(false);
//        cmbHadVereda.setValue(null);
//        cmbHadVereda.setDisabled(false);
        txtVedCodigo_RebVereda.setValue(null);
        txtVedCodigo_RebVereda.setDisabled(false);
        txtHadId.setValue(null);
        txtHadId.setDisabled(false);
        btnSave.setDisabled(false);
        btnLupaH.setDisabled(false);
        btnLupaV.setDisabled(false);
        btnLupaI.setDisabled(false);
        btnDelete.setDisabled(true);
        btnModify.setDisabled(true);
        btnClear.setDisabled(false);
        codigoCli = null;
        codigoIng = null;
        codigoVed = null;

        return "";
    }
    
    public String action_consultarCliente() {
		try {

			String nombreCliente = txtNombreCliente.getValue().toString().toUpperCase();
			if (nombreCliente == null || nombreCliente == "") {
				losClientes = BusinessDelegatorView.findByCriteriaInRebCliente(null,null,null,true);
			} else {
				Object variables[] = {"cliNombre",true,nombreCliente + '%',"Like"};
				losClientes = BusinessDelegatorView.findByCriteriaInRebCliente(variables, null, null,true);
				//System.out.println("Aqui");
			}
			flag = true;
			renderManager.getOnDemandRenderer("rebHaciendaView")
			.requestRender();

		} catch (Exception e) {
			// TODO: handle exception
		}

		return "";
	}
    
    public String action_consultarVereda() {
		try {

			String nombreVereda = txtNombreVereda.getValue().toString().toUpperCase();
			if (nombreVereda == null || nombreVereda == "") {
				lasVeredas = BusinessDelegatorView.findByCriteriaInRebVereda(null,null,null, true);
			} else {
				Object variables[] = {"vedNombre",true,nombreVereda + '%',"Like"};
				lasVeredas = BusinessDelegatorView.findByCriteriaInRebVereda(variables, null, null, true);
				//System.out.println("Aqui");
			}
			flag = true;
			renderManager.getOnDemandRenderer("rebHaciendaView")
			.requestRender();

		} catch (Exception e) {
			// TODO: handle exception
		}

		return "";
	}
    
    public String action_consultarIngenio() {
		try {

			String nombreIngenio = txtNombreIngenio.getValue().toString().toUpperCase();
			if (nombreIngenio == null || nombreIngenio == "") {
				losIngenios = BusinessDelegatorView.findByCriteriaInRebIngenio(null,null,null, true);
			} else {
				Object variables[] = {"ingNombre",true, nombreIngenio + '%',"Like"};
				losIngenios = BusinessDelegatorView.findByCriteriaInRebIngenio(variables, null, null, true);
				//System.out.println("Aqui");
			}
			flag = true;
			renderManager.getOnDemandRenderer("rebHaciendaView")
			.requestRender();

		} catch (Exception e) {
			// TODO: handle exception
		}

		return "";
	}

    public void listener_txtId(ValueChangeEvent event) {
        if ((event.getNewValue() != null) && !event.getNewValue().equals("")) {
            RebHacienda entity = null;

            try {
                Integer hadId = new Integer(txtHadId.getValue().toString());
                entity = BusinessDelegatorView.getRebHacienda(hadId);
            } catch (Exception e) {
                // TODO: handle exception
            }

            if (entity == null) {
                txtHadAdministrador.setDisabled(false);
                txtHadArea.setDisabled(false);
                txtHadCodigo.setDisabled(false);
                txtHadEmailadmin.setDisabled(false);
                cmbHadEstado.setDisabled(false);
                txtHadMayordomo.setDisabled(false);
                txtHadNombre.setDisabled(false);
                txtHadTelefonoadmin.setDisabled(false);
                txtHadTelefonomayo.setDisabled(false);
//                cmbHadCliente.setDisabled(false);
//                cmbHadIngenio.setDisabled(false);
//                cmbHadVereda.setDisabled(false);
                txtCliIdentificacion_RebCliente.setDisabled(false);
                txtVedCodigo_RebVereda.setDisabled(false);
                txtIngCodigo_RebIngenio.setDisabled(false);
                txtHadId.setDisabled(false);
                btnSave.setDisabled(false);
                btnLupaH.setDisabled(false);
                btnLupaI.setDisabled(false);
                btnLupaV.setDisabled(false);
                btnDelete.setDisabled(true);
                btnModify.setDisabled(true);
                btnClear.setDisabled(false);
            } else {
                txtHadAdministrador.setValue(entity.getHadAdministrador());
                txtHadAdministrador.setDisabled(false);
                txtHadArea.setValue(entity.getHadArea());
                txtHadArea.setDisabled(false);
                txtHadCodigo.setValue(entity.getHadCodigo());
                txtHadCodigo.setDisabled(false);
                txtHadEmailadmin.setValue(entity.getHadEmailadmin());
                txtHadEmailadmin.setDisabled(false);
                cmbHadEstado.setValue(entity.getHadEstado());
                cmbHadEstado.setDisabled(false);
                txtHadMayordomo.setValue(entity.getHadMayordomo());
                txtHadMayordomo.setDisabled(false);
                txtHadNombre.setValue(entity.getHadNombre());
                txtHadNombre.setDisabled(false);
                txtHadTelefonoadmin.setValue(entity.getHadTelefonoadmin());
                txtHadTelefonoadmin.setDisabled(false);
                txtHadTelefonomayo.setValue(entity.getHadTelefonomayo());
                txtHadTelefonomayo.setDisabled(false);
                txtCliIdentificacion_RebCliente.setValue(entity.getRebCliente().getCliNombre());
                txtCliIdentificacion_RebCliente.setDisabled(false);
                codigoCli = entity.getRebCliente().getCliIdentificacion().toString();
                txtIngCodigo_RebIngenio.setValue(entity.getRebIngenio().getIngNombre());
                txtIngCodigo_RebIngenio.setDisabled(false);
                codigoIng = entity.getRebIngenio().getIngCodigo().toString();
                txtVedCodigo_RebVereda.setValue(entity.getRebVereda().getVedNombre());
                txtVedCodigo_RebVereda.setDisabled(false);
                codigoVed = entity.getRebVereda().getVedCodigo().toString();
                txtHadId.setValue(entity.getHadId());
                txtHadId.setDisabled(true);
                btnSave.setDisabled(true);
                btnLupaH.setDisabled(false);
                btnLupaI.setDisabled(false);
                btnLupaV.setDisabled(false);
                btnDelete.setDisabled(false);
                btnModify.setDisabled(false);
                btnClear.setDisabled(false);
            }
        }
    }
    
    public String action_cargar(String hadId) {
    	RebHacienda entity = null;
        if (hadId != null){
            try {
            	int codigo = Integer.parseInt(hadId);
                entity = BusinessDelegatorView.getRebHacienda(codigo);
            } catch (Exception e) {
                // TODO: handle exception
            }

            if (entity == null) {
                txtHadAdministrador.setDisabled(false);
                txtHadArea.setDisabled(false);
                txtHadCodigo.setDisabled(false);
                txtHadEmailadmin.setDisabled(false);
                cmbHadEstado.setDisabled(false);
                txtHadMayordomo.setDisabled(false);
                txtHadNombre.setDisabled(false);
                txtHadTelefonoadmin.setDisabled(false);
                txtHadTelefonomayo.setDisabled(false);
                txtCliIdentificacion_RebCliente.setDisabled(false);
                txtIngCodigo_RebIngenio.setDisabled(false);
                txtVedCodigo_RebVereda.setDisabled(false);
                txtHadId.setDisabled(false);
                btnSave.setDisabled(false);
                btnLupaH.setDisabled(false);
                btnLupaI.setDisabled(false);
                btnLupaV.setDisabled(false);
                btnDelete.setDisabled(true);
                btnModify.setDisabled(true);
                btnClear.setDisabled(false);
            } else {
                txtHadAdministrador.setValue(entity.getHadAdministrador());
                txtHadAdministrador.setDisabled(false);
                txtHadArea.setValue(entity.getHadArea());
                txtHadArea.setDisabled(false);
                txtHadCodigo.setValue(entity.getHadCodigo());
                txtHadCodigo.setDisabled(false);
                txtHadEmailadmin.setValue(entity.getHadEmailadmin());
                txtHadEmailadmin.setDisabled(false);
                cmbHadEstado.setValue(entity.getHadEstado());
                cmbHadEstado.setDisabled(false);
                txtHadMayordomo.setValue(entity.getHadMayordomo());
                txtHadMayordomo.setDisabled(false);
                txtHadNombre.setValue(entity.getHadNombre());
                txtHadNombre.setDisabled(false);
                txtHadTelefonoadmin.setValue(entity.getHadTelefonoadmin());
                txtHadTelefonoadmin.setDisabled(false);
                txtHadTelefonomayo.setValue(entity.getHadTelefonomayo());
                txtHadTelefonomayo.setDisabled(false);
                txtCliIdentificacion_RebCliente.setValue(entity.getRebCliente().getCliNombre());
                txtCliIdentificacion_RebCliente.setDisabled(false);
                codigoCli = entity.getRebCliente().getCliIdentificacion().toString();
                txtIngCodigo_RebIngenio.setValue(entity.getRebIngenio().getIngNombre());
                txtIngCodigo_RebIngenio.setDisabled(false);
                codigoIng = entity.getRebIngenio().getIngCodigo().toString();
                txtVedCodigo_RebVereda.setValue(entity.getRebVereda().getVedNombre());
                txtVedCodigo_RebVereda.setDisabled(false);
                codigoVed = entity.getRebVereda().getVedCodigo().toString();
                txtHadId.setValue(entity.getHadId());
                txtHadId.setDisabled(true);
                btnSave.setDisabled(true);
                btnLupaH.setDisabled(false);
                btnLupaI.setDisabled(false);
                btnLupaV.setDisabled(false);
                btnDelete.setDisabled(false);
                btnModify.setDisabled(false);
                btnClear.setDisabled(false);
            }
        }
        return("");
    }
    
    public String action_cerrar2(){
		btnErrorf = false;
		return "";
	}

    public String action_save() {
        try {
        	String variable = "0";
        	String cliente = "";
        	String vereda = "";
        	String ingenio = "";
        	Double area = Double.parseDouble(variable);
        	//String id = txtHadId.getValue().toString();
        	String nombre = txtHadNombre.getValue().toString().toUpperCase();
        	String codigo = txtHadCodigo.getValue().toString();
        	if (txtHadCodigo.getValue().equals("")) {
        		codigo = "0";
			}else {
				codigo = txtHadCodigo.getValue().toString();
			}
        	if (codigoCli != null){
				cliente = codigoCli;
			}
        	if (codigoIng != null){
        		ingenio = codigoIng;
			}
        	if (codigoVed != null){
        		vereda = codigoVed;
			}
        	String admin = txtHadAdministrador.getValue().toString().toUpperCase();
        	String email = txtHadEmailadmin.getValue().toString();
        	String telefonoa = txtHadTelefonoadmin.getValue().toString();
        	String mayord = txtHadMayordomo.getValue().toString().toUpperCase();
        	String telefonom = txtHadTelefonomayo.getValue().toString();
        	String estado =  cmbHadEstado.getValue().toString();
        	
        	if(!Utilities.soloLetras(nombre)){
				throw new Exception("El Nombre de la Hacienda debe contener solo letras");
			}
        	if(nombre.trim().equals("")){
				throw new Exception("El Nombre de la Hacienda es de car&#225;cter obligatorio");
			}
        	if (!Utilities.soloNumeros(codigo)) {
				throw new Exception("El c&#243;digo de la Hacienda debe ser totalmente numerico");
			}
        	
        	if (cliente.trim().equals("")) {
				throw new Exception("El Cliente es de car&#225;cter obligatorio, debes seleccionar alguno");
			}
        	if (ingenio.trim().equals("")) {
				throw new Exception("El Ingenio es de car&#225;cter obligatorio, debes seleccionar alguno");
			}
        	if (vereda.trim().equals("")) {
				throw new Exception("La Vereda es de car&#225;cter obligatorio, debes seleccionar alguna");
			}
        	if(!Utilities.soloLetras(admin)){
				throw new Exception("El campo del Administrador debe contener solo letras");
			}
        	if(admin.trim().equals("")){
				throw new Exception("El campo del Administrador es de car&#225;cter obligatorio");
			}
        	if(!Utilities.correElectronico(email) && email.trim() != ""){
				throw new Exception("El E-mail del Administrador debe tener el siguiente formato \"xxx@xxx.xxx\"");
			}
        	if (!Utilities.soloNumeros(telefonoa)) {
				throw new Exception("El Tel&#233;fono del Administrador debe ser totalmente numerico");
			}
			if (telefonoa.trim().equals("")) {
				throw new Exception("El Tel&#233;fono del Adminstrador es de caracter obligatorio");
			}
			if(!Utilities.soloLetras(mayord)){
				throw new Exception("El campo del Mayordomo debe contener solo letras");
			}
			if (!Utilities.soloNumeros(telefonom)) {
				throw new Exception("El Tel&#233;fono del May deordomo debe ser totalmente numerico");
			}
			if (estado.trim().equals("") || estado.equals("Seleccione un valor")) {
				throw new Exception("El Estado de la Hacienda es de car&#225;cter obligatorio, debes seleccionar alguno");
			}
        	
            BusinessDelegatorView.saveRebHacienda(admin, area, new Integer(codigo),
                email, estado, null, mayord, nombre, telefonoa, telefonom,
                cliente, new Integer(ingenio), new Integer(vereda));
            btnErrorf = true;
            FacesUtils.addInfoMessage(ZMessManager.ENTITY_SUCCESFULLYSAVED);
            
            onePageDataModel = null;
			renderManager.getOnDemandRenderer("rebHaciendaView").requestRender();
			action_clear();
            
        } catch (Exception e) {
        	btnErrorf = true;
        	btnAceptar.requestFocus();
            FacesUtils.addErrorMessage(e.getMessage());
        }

        return "";
    }

    public String action_delete() {
        try {
            BusinessDelegatorView.deleteRebHacienda(FacesUtils.checkInteger(
                    txtHadId));
            FacesUtils.addInfoMessage(ZMessManager.ENTITY_SUCCESFULLYDELETED);
            action_clear();
        } catch (Exception e) {
            FacesUtils.addErrorMessage(e.getMessage());
        }

        return "";
    }
    
    public String action_inactivar() {
        try {
        	//String variable = 
        	String estado = "INACTIVO";
        	String cliente = "";
        	String vereda = "";
        	String ingenio = "";
        	String id = txtHadId.getValue().toString();
        	String nombre = txtHadNombre.getValue().toString().toUpperCase();
        	String codigo = txtHadCodigo.getValue().toString();
        	if (txtHadCodigo.getValue().equals("")) {
        		codigo = "0";
			}else {
				codigo = txtHadCodigo.getValue().toString();
			}
        	if (codigoCli != null){
				cliente = codigoCli;
			}
        	if (codigoIng != null){
        		ingenio = codigoIng;
			}
        	if (codigoVed != null){
        		vereda = codigoVed;
			}
        	String admin = txtHadAdministrador.getValue().toString();
        	String email = txtHadEmailadmin.getValue().toString();
        	String telefonoa = txtHadTelefonoadmin.getValue().toString();
        	String mayord = txtHadMayordomo.getValue().toString();
        	String telefonom = txtHadTelefonomayo.getValue().toString();
        	Double area = Double.parseDouble(txtHadArea.getValue().toString());
        	//String estado =  cmbHadEstado.getValue().toString();
        	
        	if(!Utilities.soloLetras(nombre)){
				throw new Exception("El Nombre de la Hacienda debe contener solo letras");
			}
        	if(nombre.trim().equals("")){
				throw new Exception("El Nombre de la Hacienda es de car&#225;cter obligatorio");
			}
        	if (!Utilities.soloNumeros(codigo)) {
				throw new Exception("El c&#243;digo de la Hacienda debe ser totalmente numerico");
			}
        	
        	if (cliente.trim().equals("")) {
				throw new Exception("El Cliente es de car&#225;cter obligatorio, debes seleccionar alguno");
			}
        	if (ingenio.trim().equals("")) {
				throw new Exception("El Ingenio es de car&#225;cter obligatorio, debes seleccionar alguno");
			}
        	if (vereda.trim().equals("")) {
				throw new Exception("La Vereda es de car&#225;cter obligatorio, debes seleccionar alguna");
			}
        	if(!Utilities.soloLetras(admin)){
				throw new Exception("El campo del Administrador debe contener solo letras");
			}
        	if(admin.trim().equals("")){
				throw new Exception("El campo del Administrador es de car&#225;cter obligatorio");
			}
        	if(!Utilities.correElectronico(email)&& email.trim() != ""){
				throw new Exception("El E-mail del Administrador debe tener el siguiente formato \"xxx@xxx.xxx\"");
			}
        	if (!Utilities.soloNumeros(telefonoa)) {
				throw new Exception("El Tel&#233;fono del Administrador debe ser totalmente numerico");
			}
			if (telefonoa.trim().equals("")) {
				throw new Exception("El Tel&#233;fono del Adminstrador es de caracter obligatorio");
			}
			if(!Utilities.soloLetras(mayord)){
				throw new Exception("El campo del Mayordomo debe contener solo letras");
			}
			if (!Utilities.soloNumeros(telefonom)) {
				throw new Exception("El Tel&#233;fono del May deordomo debe ser totalmente numerico");
			}
			/*if (estado.trim().equals("") || estado.equals("Seleccione un valor")) {
				throw new Exception("El Estado de la Hacienda es de car&#225;cter obligatorio, debes seleccionar alguno");
			}*/
        	
            BusinessDelegatorView.updateRebHacienda(admin, area, new Integer(codigo), email,
                estado, new Integer(id), mayord, nombre, telefonoa, telefonom, cliente,
                new Integer(ingenio), new Integer(vereda));
            btnErrorf = true;
            FacesUtils.addInfoMessage(ZMessManager.ENTITY_SUCCESFULLYMODIFIED);
            action_clear();
            
            onePageDataModel = null;
			renderManager.getOnDemandRenderer("rebHaciendaView").requestRender();
            
        } catch (Exception e) {
        	btnErrorf = true;
        	btnAceptar.requestFocus();
            FacesUtils.addErrorMessage(e.getMessage());
        }

        return "";
    }

    public String action_modify() {
        try {
        	String cliente = "";
        	String vereda = "";
        	String ingenio = "";
        	String id = txtHadId.getValue().toString();
        	String nombre = txtHadNombre.getValue().toString().toUpperCase();
        	String codigo = txtHadCodigo.getValue().toString();
        	if (txtHadCodigo.getValue().equals("")) {
        		codigo = "0";
			}else {
				codigo = txtHadCodigo.getValue().toString();
			}
        	//Integer cod = Integer.parseInt(codigo);
        	if (codigoCli != null){
				cliente = codigoCli;
			}
        	if (codigoIng != null){
        		ingenio = codigoIng;
			}
        	if (codigoVed != null){
        		vereda = codigoVed;
			}
        	String admin = txtHadAdministrador.getValue().toString();
        	String email = txtHadEmailadmin.getValue().toString();
        	String telefonoa = txtHadTelefonoadmin.getValue().toString();
        	String mayord = txtHadMayordomo.getValue().toString();
        	String telefonom = txtHadTelefonomayo.getValue().toString();
        	Double area = Double.parseDouble(txtHadArea.getValue().toString());
        	String estado =  cmbHadEstado.getValue().toString();
        	
        	if(!Utilities.soloLetras(nombre)){
				throw new Exception("El Nombre de la Hacienda debe contener solo letras");
			}
        	if(nombre.trim().equals("")){
				throw new Exception("El Nombre de la Hacienda es de car&#225;cter obligatorio");
			}
        	if (!Utilities.soloNumeros(codigo)) {
				throw new Exception("El c&#243;digo de la Hacienda debe ser totalmente numerico");
			}
        	
        	if (cliente.trim().equals("")) {
				throw new Exception("El Cliente es de car&#225;cter obligatorio, debes seleccionar alguno");
			}
        	if (ingenio.trim().equals("")) {
				throw new Exception("El Ingenio es de car&#225;cter obligatorio, debes seleccionar alguno");
			}
        	if (vereda.trim().equals("")) {
				throw new Exception("La Vereda es de car&#225;cter obligatorio, debes seleccionar alguna");
			}
        	if(!Utilities.soloLetras(admin)){
				throw new Exception("El campo del Administrador debe contener solo letras");
			}
        	if(admin.trim().equals("")){
				throw new Exception("El campo del Administrador es de car&#225;cter obligatorio");
			}
        	if(!Utilities.correElectronico(email)&& email.trim() != ""){
				throw new Exception("El E-mail del Administrador debe tener el siguiente formato \"xxx@xxx.xxx\"");
			}
        	if (!Utilities.soloNumeros(telefonoa)) {
				throw new Exception("El Tel&#233;fono del Administrador debe ser totalmente numerico");
			}
			if (telefonoa.trim().equals("")) {
				throw new Exception("El Tel&#233;fono del Adminstrador es de caracter obligatorio");
			}
			if(!Utilities.soloLetras(mayord)){
				throw new Exception("El campo del Mayordomo debe contener solo letras");
			}
			if (!Utilities.soloNumeros(telefonom)) {
				throw new Exception("El Tel&#233;fono del May deordomo debe ser totalmente numerico");
			}
			if (estado.trim().equals("") || estado.equals("Seleccione un valor")) {
				throw new Exception("El Estado de la Hacienda es de car&#225;cter obligatorio, debes seleccionar alguno");
			}
        	
            BusinessDelegatorView.updateRebHacienda(admin, area, new Integer(codigo), email, estado,
            	new Integer(id), mayord, nombre, telefonoa, telefonom, cliente, 
            	new Integer(ingenio), new Integer(vereda));
            btnErrorf = true;
            FacesUtils.addInfoMessage(ZMessManager.ENTITY_SUCCESFULLYMODIFIED);
            action_clear();
            
            onePageDataModel = null;
			renderManager.getOnDemandRenderer("rebHaciendaView").requestRender();
        } catch (Exception e) {
        	btnErrorf = true;
        	btnAceptar.requestFocus();
            FacesUtils.addErrorMessage(e.getMessage());
        }

        return "";
    }

    public String action_modifyWitDTO(String hadAdministrador, Double hadArea,
        Integer hadCodigo, String hadEmailadmin, String hadEstado,
        Integer hadId, String hadMayordomo, String hadNombre,
        String hadTelefonoadmin, String hadTelefonomayo,
        String cliIdentificacion_RebCliente, Integer ingCodigo_RebIngenio,
        Integer vedCodigo_RebVereda) throws Exception {
        try {
            BusinessDelegatorView.updateRebHacienda(hadAdministrador, hadArea,
                hadCodigo, hadEmailadmin, hadEstado, hadId, hadMayordomo,
                hadNombre, hadTelefonoadmin, hadTelefonomayo,
                cliIdentificacion_RebCliente, ingCodigo_RebIngenio,
                vedCodigo_RebVereda);
            renderManager.getOnDemandRenderer("RebHaciendaView").requestRender();
            FacesUtils.addInfoMessage(ZMessManager.ENTITY_SUCCESFULLYMODIFIED);
        } catch (Exception e) {
            //renderManager.getOnDemandRenderer("RebHaciendaView").requestRender();
            FacesUtils.addErrorMessage(e.getMessage());
            throw e;
        }

        return "";
    }

    public List<RebHacienda> getRebHacienda() {
        if (flag) {
            try {
                rebHacienda = BusinessDelegatorView.getRebHacienda();
                flag = false;
            } catch (Exception e) {
                flag = true;
                FacesUtils.addErrorMessage(e.getMessage());
            }
        }

        return rebHacienda;
    }

    public boolean isFlag() {
        return flag;
    }

    public void setRebHacienda(List<RebHacienda> rebHacienda) {
        this.rebHacienda = rebHacienda;
    }

    public boolean isRenderDataTable() {
        try {
            if (flag) {
                if (BusinessDelegatorView.findTotalNumberRebHacienda() > 0) {
                    renderDataTable = true;
                } else {
                    renderDataTable = false;
                }
            }

            flag = false;
        } catch (Exception e) {
            renderDataTable = false;
            e.printStackTrace();
        }

        return renderDataTable;
    }

    public DataModel getData() {
        state = PersistentFacesState.getInstance();

        if (onePageDataModel == null) {
            onePageDataModel = new LocalDataModel(pageSize);
//            onePageDataModel = null;
            renderManager.getOnDemandRenderer("rebHaciendaView").requestRender();
        } 
        

        return onePageDataModel;
    }

    /**
    * This is where the Object data is retrieved from the database and
    * returned as a list of objects for display in the UI.
    */
    private DataPage<RebHacienda> getDataPage(int startRow, int pageSize) {
        // Retrieve the total number of objects from the database.  This
        // number is required by the DataPage object so the paginator will know
        // the relative location of the page data.
        int totalNumberRebHacienda = 0;

        try {
            totalNumberRebHacienda = BusinessDelegatorView.findTotalNumberRebHacienda()
                                                          .intValue();
        } catch (Exception e) {
            FacesUtils.addErrorMessage(e.getMessage());
        }

        // Calculate indices to be displayed in the ui.
        int endIndex = startRow + pageSize;

        if (endIndex > totalNumberRebHacienda) {
            endIndex = totalNumberRebHacienda;
        }

        try {
            rebHacienda = BusinessDelegatorView.findPageRebHacienda(sortColumnName,
                    sortAscending, startRow, endIndex - startRow);

            // Remove this Renderable from the existing render groups.
            //leaveRenderGroups();        			
        } catch (Exception e) {
            FacesUtils.addErrorMessage(e.getMessage());
        }

        // Add this Renderable to the new render groups.
        //joinRenderGroups();
        // Reset the dirtyData flag.
        onePageDataModel.setDirtyData(false);
        // This is required when using Hibernate.  If the SessionManager is not
        // cleared or closed objects are cached and stale objects will show up
        // in the table.
        // This way, the detached objects are reread from the database.
        // This call is not required with Hibernate, which uses a Query Hint
        // to clear the l2 cache in the DAO.
        flag = true;

        return new DataPage<RebHacienda>(totalNumberRebHacienda, startRow,
            rebHacienda);
    }

    public DataModel getDataDTO() {
        state = PersistentFacesState.getInstance();

        if (onePageDataModel == null) {  	
            onePageDataModel = new LocalDataModelDTO(pageSize);
        }
        renderManager.getOnDemandRenderer("rebHaciendaView").requestRender();

        return onePageDataModel;
    }

    /**
    * This is where the Object data is retrieved from the database and
    * returned as a list of objects for display in the UI.
    */
    private DataPage<RebHaciendaDTO> getDataPageDTO(int startRow, int pageSize) {
        // Retrieve the total number of objects from the database.  This
        // number is required by the DataPage object so the paginator will know
        // the relative location of the page data.
        int totalNumberRebHacienda = 0;

        try {
            totalNumberRebHacienda = BusinessDelegatorView.findTotalNumberRebHacienda()
                                                          .intValue();
        } catch (Exception e) {
            FacesUtils.addErrorMessage(e.getMessage());
        }

        // Calculate indices to be displayed in the ui.
        int endIndex = startRow + pageSize;

        if (endIndex > totalNumberRebHacienda) {
            endIndex = totalNumberRebHacienda;
        }

        try {
            rebHacienda = BusinessDelegatorView.findPageRebHacienda(sortColumnName,
                    sortAscending, startRow, endIndex - startRow);

            if (Utilities.validationsList(rebHacienda)) {
                rebHaciendaDTO = new ArrayList<RebHaciendaDTO>();

                for (RebHacienda rebHaciendaTmp : rebHacienda) {
                    RebHaciendaDTO rebHaciendaDTO2 = new RebHaciendaDTO();
                    rebHaciendaDTO2.setHadId(rebHaciendaTmp.getHadId().toString());
                    rebHaciendaDTO2.setHadAdministrador((rebHaciendaTmp.getHadAdministrador() != null)
                        ? rebHaciendaTmp.getHadAdministrador().toString() : null);
                    rebHaciendaDTO2.setHadArea((rebHaciendaTmp.getHadArea() != null)
                        ? rebHaciendaTmp.getHadArea().toString() : null);
                    rebHaciendaDTO2.setHadCodigo((rebHaciendaTmp.getHadCodigo() != null)
                        ? rebHaciendaTmp.getHadCodigo().toString() : null);
                    rebHaciendaDTO2.setHadEmailadmin((rebHaciendaTmp.getHadEmailadmin() != null)
                        ? rebHaciendaTmp.getHadEmailadmin().toString() : null);
                    rebHaciendaDTO2.setHadEstado((rebHaciendaTmp.getHadEstado() != null)
                        ? rebHaciendaTmp.getHadEstado().toString() : null);
                    rebHaciendaDTO2.setHadMayordomo((rebHaciendaTmp.getHadMayordomo() != null)
                        ? rebHaciendaTmp.getHadMayordomo().toString() : null);
                    rebHaciendaDTO2.setHadNombre((rebHaciendaTmp.getHadNombre() != null)
                        ? rebHaciendaTmp.getHadNombre().toString() : null);
                    rebHaciendaDTO2.setHadTelefonoadmin((rebHaciendaTmp.getHadTelefonoadmin() != null)
                        ? rebHaciendaTmp.getHadTelefonoadmin().toString() : null);
                    rebHaciendaDTO2.setHadTelefonomayo((rebHaciendaTmp.getHadTelefonomayo() != null)
                        ? rebHaciendaTmp.getHadTelefonomayo().toString() : null);
                    rebHaciendaDTO2.setCliIdentificacion_RebCliente((rebHaciendaTmp.getRebCliente()
                                                                                   .getCliNombre() != null)
                        ? rebHaciendaTmp.getRebCliente().getCliNombre()
                                        .toString() : null);
                    rebHaciendaDTO2.setIngCodigo_RebIngenio((rebHaciendaTmp.getRebIngenio()
                                                                           .getIngNombre() != null)
                        ? rebHaciendaTmp.getRebIngenio().getIngNombre()
                                        .toString() : null);
                    rebHaciendaDTO2.setVedCodigo_RebVereda((rebHaciendaTmp.getRebVereda()
                                                                          .getVedNombre() != null)
                        ? rebHaciendaTmp.getRebVereda().getVedNombre().toString()
                        : null);
                    rebHaciendaDTO2.setRebHacienda(rebHaciendaTmp);
                    rebHaciendaDTO2.setRebHaciendaView(this);
                    rebHaciendaDTO.add(rebHaciendaDTO2);
//                    onePageDataModel = null;
                    renderManager.getOnDemandRenderer("rebHaciendaView").requestRender();
                }
            }

            // Remove this Renderable from the existing render groups.
            leaveRenderGroups();
        } catch (Exception e) {
            FacesUtils.addErrorMessage(e.getMessage());
        }

        // Add this Renderable to the new render groups.
        joinRenderGroups();
        // Reset the dirtyData flag.
        onePageDataModel.setDirtyData(false);
        // This is required when using Hibernate.  If the SessionManager is not
        // cleared or closed objects are cached and stale objects will show up
        // in the table.
        // This way, the detached objects are reread from the database.
        // This call is not required with Hibernate, which uses a Query Hint
        // to clear the l2 cache in the DAO.
        flag = true;

        return new DataPage<RebHaciendaDTO>(totalNumberRebHacienda, startRow,
            rebHaciendaDTO);
    }

    protected boolean isDefaultAscending(String sortColumn) {
        return true;
    }

    /**
    * This method is called when a render call is made from the server. Render
    * calls are only made to views containing an updated record. The data is
    * marked as dirty to trigger a fetch of the updated record from the
    * database before rendering takes place.
    */
    public PersistentFacesState getState() {
        onePageDataModel.setDirtyData();

        return state;
    }

    /**
    * This method is called from faces-config.xml with each new session.
    */
    public void setRenderManager(RenderManager renderManager) {
        this.renderManager = renderManager;
    }

    public void renderingException(RenderingException arg0) {
        if (arg0 instanceof TransientRenderingException) {
        } else if (arg0 instanceof FatalRenderingException) {
            // Remove from existing Customer render groups.
            leaveRenderGroups();
        }
    }

    /**
    * Remove this Renderable from existing uiCustomerBeans render groups.
    * OnDemandRenderers are named/created using the underlying Customer Number.
    */
    private void leaveRenderGroups() {
        if (Utilities.validationsList(rebHaciendaDTO)) {
            for (RebHaciendaDTO rebHaciendaTmp : rebHaciendaDTO) {
                renderManager.getOnDemandRenderer("RebHaciendaView").remove(this);
            }
        }
    }

    /**
    * Add this Renderable to the new uiCustomerBeans render groups.
    * OnDemandRenderers are named/created using the underlying Customer Number.
    */
    private void joinRenderGroups() {
        if (Utilities.validationsList(rebHaciendaDTO)) {
            for (RebHaciendaDTO rebHaciendaTmp : rebHaciendaDTO) {
                renderManager.getOnDemandRenderer("RebHaciendaView").add(this);
            }
        }
    }

    public void dispose() throws Exception {
    }

    public RenderManager getRenderManager() {
        return renderManager;
    }

    public void setState(PersistentFacesState state) {
        this.state = state;
    }

    public HtmlInputText getTxtHadAdministrador() {
        return txtHadAdministrador;
    }

    public void setTxtHadAdministrador(HtmlInputText txtHadAdministrador) {
        this.txtHadAdministrador = txtHadAdministrador;
    }

    public HtmlInputText getTxtHadArea() {
        return txtHadArea;
    }

    public void setTxtHadArea(HtmlInputText txtHadArea) {
        this.txtHadArea = txtHadArea;
    }

    public HtmlInputText getTxtHadCodigo() {
        return txtHadCodigo;
    }

    public void setTxtHadCodigo(HtmlInputText txtHadCodigo) {
        this.txtHadCodigo = txtHadCodigo;
    }

    public HtmlOutputText getTxtHadCodigo1() {
		return txtHadCodigo1;
	}
	public void setTxtHadCodigo1(HtmlOutputText txtHadCodigo1) {
		this.txtHadCodigo1 = txtHadCodigo1;
	}
	public HtmlOutputText getTxtHadCodigo2() {
		return txtHadCodigo2;
	}
	public void setTxtHadCodigo2(HtmlOutputText txtHadCodigo2) {
		this.txtHadCodigo2 = txtHadCodigo2;
	}
	public HtmlOutputText getTxtHadCodigo3() {
		return txtHadCodigo3;
	}
	public void setTxtHadCodigo3(HtmlOutputText txtHadCodigo3) {
		this.txtHadCodigo3 = txtHadCodigo3;
	}
	public HtmlInputText getTxtHadEmailadmin() {
        return txtHadEmailadmin;
    }

    public void setTxtHadEmailadmin(HtmlInputText txtHadEmailadmin) {
        this.txtHadEmailadmin = txtHadEmailadmin;
    }

    public HtmlInputText getTxtHadEstado() {
        return txtHadEstado;
    }

    public void setTxtHadEstado(HtmlInputText txtHadEstado) {
        this.txtHadEstado = txtHadEstado;
    }

    public HtmlInputText getTxtHadMayordomo() {
        return txtHadMayordomo;
    }

    public void setTxtHadMayordomo(HtmlInputText txtHadMayordomo) {
        this.txtHadMayordomo = txtHadMayordomo;
    }

    public HtmlInputText getTxtHadNombre() {
        return txtHadNombre;
    }

    public void setTxtHadNombre(HtmlInputText txtHadNombre) {
        this.txtHadNombre = txtHadNombre;
    }

    public HtmlInputText getTxtHadTelefonoadmin() {
        return txtHadTelefonoadmin;
    }

    public void setTxtHadTelefonoadmin(HtmlInputText txtHadTelefonoadmin) {
        this.txtHadTelefonoadmin = txtHadTelefonoadmin;
    }

    public HtmlInputText getTxtHadTelefonomayo() {
        return txtHadTelefonomayo;
    }

    public void setTxtHadTelefonomayo(HtmlInputText txtHadTelefonomayo) {
        this.txtHadTelefonomayo = txtHadTelefonomayo;
    }

    public HtmlInputText getTxtCliIdentificacion_RebCliente() {
        return txtCliIdentificacion_RebCliente;
    }

    public void setTxtCliIdentificacion_RebCliente(
        HtmlInputText txtCliIdentificacion_RebCliente) {
        this.txtCliIdentificacion_RebCliente = txtCliIdentificacion_RebCliente;
    }

    public HtmlInputText getTxtIngCodigo_RebIngenio() {
        return txtIngCodigo_RebIngenio;
    }

    public void setTxtIngCodigo_RebIngenio(
        HtmlInputText txtIngCodigo_RebIngenio) {
        this.txtIngCodigo_RebIngenio = txtIngCodigo_RebIngenio;
    }

    public HtmlInputText getTxtVedCodigo_RebVereda() {
        return txtVedCodigo_RebVereda;
    }

    public void setTxtVedCodigo_RebVereda(HtmlInputText txtVedCodigo_RebVereda) {
        this.txtVedCodigo_RebVereda = txtVedCodigo_RebVereda;
    }

    public HtmlInputText getTxtHadId() {
        return txtHadId;
    }

    public void setTxtHadId(HtmlInputText txtHadId) {
        this.txtHadId = txtHadId;
    }

    public HtmlInputText getTxtNombreCliente() {
		return txtNombreCliente;
	}

	public void setTxtNombreCliente(HtmlInputText txtNombreCliente) {
		this.txtNombreCliente = txtNombreCliente;
	}

	public HtmlInputText getTxtNombreVereda() {
		return txtNombreVereda;
	}

	public void setTxtNombreVereda(HtmlInputText txtNombreVereda) {
		this.txtNombreVereda = txtNombreVereda;
	}

	public HtmlInputText getTxtNombreIngenio() {
		return txtNombreIngenio;
	}

	public void setTxtNombreIngenio(HtmlInputText txtNombreIngenio) {
		this.txtNombreIngenio = txtNombreIngenio;
	}

	public HtmlSelectOneMenu getCmbHadCliente() {
    	try {
    		List<RebCliente> list = BusinessDelegatorView.findByCriteriaInRebCliente(null, null, null,true);
    		listCliente.clear();
    		listCliente.add(new SelectItem(0,"Seleccione un valor"));
    		
    		for (RebCliente cliente : list) {
    			listCliente.add(new SelectItem(cliente.getCliIdentificacion(), cliente.getCliNombre()));
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		return cmbHadCliente;
	}

	public void setCmbHadCliente(HtmlSelectOneMenu cmbHadCliente) {
		this.cmbHadCliente = cmbHadCliente;
	}

	public HtmlSelectOneMenu getCmbHadIngenio() {
		try {
    		List<RebIngenio> list = BusinessDelegatorView.findByCriteriaInRebIngenio(null, null, null, true);
    		listIngenio.clear();
    		listIngenio.add(new SelectItem(0,"Seleccione un valor"));
    		
    		for (RebIngenio ingenio : list) {
    			listIngenio.add(new SelectItem(ingenio.getIngCodigo(), ingenio.getIngNombre()));
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		return cmbHadIngenio;
	}

	public void setCmbHadIngenio(HtmlSelectOneMenu cmbHadIngenio) {
		this.cmbHadIngenio = cmbHadIngenio;
	}

	public HtmlSelectOneMenu getCmbHadVereda() {
		try {
    		List<RebVereda> list = BusinessDelegatorView.findByCriteriaInRebVereda(null, null, null, true);
    		listVereda.clear();
    		listVereda.add(new SelectItem(0,"Seleccione un valor"));
    		
    		for (RebVereda vereda : list) {
    			listVereda.add(new SelectItem(vereda.getVedCodigo(), vereda.getVedNombre()));
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		return cmbHadVereda;
	}

	public void setCmbHadVereda(HtmlSelectOneMenu cmbHadVereda) {
		this.cmbHadVereda = cmbHadVereda;
	}

	public HtmlSelectOneMenu getCmbHadEstado() {
		try {
			 listEstado.clear();
			 listEstado.add(new SelectItem("Seleccione un valor"));
			 listEstado.add(new SelectItem("ACTIVO"));
			 listEstado.add(new SelectItem("INACTIVO"));
		 } catch (Exception e) {
			 // TODO: handle exception
		 }
		return cmbHadEstado;
	}

	public void setCmbHadEstado(HtmlSelectOneMenu cmbHadEstado) {
		this.cmbHadEstado = cmbHadEstado;
	}

	public HtmlDataTable getTablaClientes() {
		return tablaClientes;
	}
	public void setTablaClientes(HtmlDataTable tablaClientes) {
		this.tablaClientes = tablaClientes;
	}
	public HtmlDataTable getTablaVereda() {
		return tablaVereda;
	}
	public void setTablaVereda(HtmlDataTable tablaVereda) {
		this.tablaVereda = tablaVereda;
	}
	public HtmlDataTable getTablaIngenio() {
		return tablaIngenio;
	}
	public void setTablaIngenio(HtmlDataTable tablaIngenio) {
		this.tablaIngenio = tablaIngenio;
	}
	public List<SelectItem> getListCliente() {
		return listCliente;
	}

	public void setListCliente(List<SelectItem> listCliente) {
		this.listCliente = listCliente;
	}

	public List<SelectItem> getListIngenio() {
		return listIngenio;
	}

	public void setListIngenio(List<SelectItem> listIngenio) {
		this.listIngenio = listIngenio;
	}

	public List<SelectItem> getListVereda() {
		return listVereda;
	}

	public void setListVereda(List<SelectItem> listVereda) {
		this.listVereda = listVereda;
	}

	public List<SelectItem> getListEstado() {
		return listEstado;
	}

	public void setListEstado(List<SelectItem> listEstado) {
		this.listEstado = listEstado;
	}

	public List<RebCliente> getLosClientes() {
		return losClientes;
	}
	public void setLosClientes(List<RebCliente> losClientes) {
		this.losClientes = losClientes;
	}
	public List<RebVereda> getLasVeredas() {
		return lasVeredas;
	}
	public void setLasVeredas(List<RebVereda> lasVeredas) {
		this.lasVeredas = lasVeredas;
	}
	public List<RebIngenio> getLosIngenios() {
		return losIngenios;
	}
	public void setLosIngenios(List<RebIngenio> losIngenios) {
		this.losIngenios = losIngenios;
	}
	public HtmlCommandButton getBtnSave() {
        return btnSave;
    }

    public void setBtnSave(HtmlCommandButton btnSave) {
        this.btnSave = btnSave;
    }

    public HtmlCommandButton getBtnModify() {
        return btnModify;
    }

    public void setBtnModify(HtmlCommandButton btnModify) {
        this.btnModify = btnModify;
    }

    public HtmlCommandButton getBtnDelete() {
        return btnDelete;
    }

    public void setBtnDelete(HtmlCommandButton btnDelete) {
        this.btnDelete = btnDelete;
    }

    public HtmlCommandButton getBtnClear() {
        return btnClear;
    }

    public void setBtnClear(HtmlCommandButton btnClear) {
        this.btnClear = btnClear;
    }

    public HtmlCommandButton getBtnLupaH() {
		return btnLupaH;
	}

	public void setBtnLupaH(HtmlCommandButton btnLupaH) {
		this.btnLupaH = btnLupaH;
	}

	public HtmlCommandButton getBtnLupaV() {
		return btnLupaV;
	}

	public void setBtnLupaV(HtmlCommandButton btnLupaV) {
		this.btnLupaV = btnLupaV;
	}

	public HtmlCommandButton getBtnLupaI() {
		return btnLupaI;
	}

	public void setBtnLupaI(HtmlCommandButton btnLupaI) {
		this.btnLupaI = btnLupaI;
	}

	public void setRenderDataTable(boolean renderDataTable) {
        this.renderDataTable = renderDataTable;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }
    
    
    

    public HtmlCommandButton getBtnAceptar() {
		return btnAceptar;
	}
	public void setBtnAceptar(HtmlCommandButton btnAceptar) {
		this.btnAceptar = btnAceptar;
	}
	public boolean isBtnErrorf() {
		return btnErrorf;
	}
	public void setBtnErrorf(boolean btnErrorf) {
		this.btnErrorf = btnErrorf;
	}
	public boolean isBtnCerrarH() {
		return btnCerrarH;
	}

	public void setBtnCerrarH(boolean btnCerrarH) {
		this.btnCerrarH = btnCerrarH;
	}

	public boolean isBtnCerrarV() {
		return btnCerrarV;
	}

	public void setBtnCerrarV(boolean btnCerrarV) {
		this.btnCerrarV = btnCerrarV;
	}

	public boolean isBtnCerrarI() {
		return btnCerrarI;
	}

	public void setBtnCerrarI(boolean btnCerrarI) {
		this.btnCerrarI = btnCerrarI;
	}

	public List<RebHaciendaDTO> getRebHaciendaDTO() {
        return rebHaciendaDTO;
    }

    public void setRebHaciendaDTO(List<RebHaciendaDTO> rebHaciendaDTO) {
        this.rebHaciendaDTO = rebHaciendaDTO;
    }

    public TimeZone getTimeZone() {
        return java.util.TimeZone.getDefault();
    }

    /**
    * A special type of JSF DataModel to allow a datatable and datapaginator
    * to page through a large set of data without having to hold the entire
    * set of data in memory at once.
    * Any time a managed bean wants to avoid holding an entire dataset,
    * the managed bean declares this inner class which extends PagedListDataModel
    * and implements the fetchData method. fetchData is called
    * as needed when the table requires data that isn't available in the
    * current data page held by this object.
    * This requires the managed bean (and in general the business
    * method that the managed bean uses) to provide the data wrapped in
    * a DataPage object that provides info on the full size of the dataset.
    */
    private class LocalDataModel extends PagedListDataModel {
        public LocalDataModel(int pageSize) {
            super(pageSize);
        }

        public DataPage<RebHacienda> fetchPage(int startRow, int pageSize) {
            // call enclosing managed bean method to fetch the data
            return getDataPage(startRow, pageSize);
        }
    }

    private class LocalDataModelDTO extends PagedListDataModel {
        public LocalDataModelDTO(int pageSize) {
            super(pageSize);
        }

        public DataPage<RebHaciendaDTO> fetchPage(int startRow, int pageSize) {
            // call enclosing managed bean method to fetch the data
            return getDataPageDTO(startRow, pageSize);
        }
    }
}
